Page({
  data: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 页面加载时可初始化数据（如用户状态、配置信息等）
    this.initPageData();
  },

  /**
   * 初始化页面数据（可扩展接口请求逻辑）
   */
  initPageData() {
    // 示例：检查本地用户状态（若有登录逻辑可在此扩展）
    const userInfo = wx.getStorageSync('userInfo') || {};
    this.setData({ userInfo });
    // 可添加接口请求：如获取首页配置、用户训练状态等
    // this.getHomeConfig();
  },

  /**
   * 头像点击动效（增强交互反馈）
   */
  showAvatarAnim() {
    const query = wx.createSelectorQuery().in(this);
    query.select('.logo')
      .fields({ node: true, size: true })
      .exec((res) => {
        if (res[0]) {
          const logoNode = res[0].node;
          // 添加点击缩放动效
          logoNode.style.transform = 'scale(1.05)';
          logoNode.style.transition = 'transform 0.2s ease';
          // 动效结束后复位
          setTimeout(() => {
            logoNode.style.transform = 'scale(1)';
          }, 200);
        }
      });
  },

  /**
   * 功能卡片点击动效（增强交互反馈）
   */
  showFeatureAnim(e) {
    const query = wx.createSelectorQuery().in(this);
    const featureId = e.currentTarget.dataset.id || e.currentTarget.id;
    query.select(`.feature-${featureId}`) // 若功能卡片添加id可精准定位，此处兼容无id场景
      .fields({ node: true, size: true })
      .exec((res) => {
        if (res[0]) {
          const featureNode = res[0].node;
          // 添加上浮+阴影加深动效
          featureNode.style.transform = 'translateY(-5rpx)';
          featureNode.style.boxShadow = '0 8rpx 20rpx rgba(59, 130, 246, 0.15)';
          featureNode.style.transition = 'all 0.3s ease';
          // 动效结束后复位
          setTimeout(() => {
            featureNode.style.transform = 'translateY(0)';
            featureNode.style.boxShadow = '0 4rpx 15rpx rgba(0, 0, 0, 0.02)';
          }, 300);
        }
      });
  },

  /**
   * 立即开始训练按钮点击事件（核心跳转逻辑）
   */
  handleStartTraining() {
    // 1. 先检查用户登录状态（若需登录后才能进入训练，可添加此逻辑）
    const userInfo = wx.getStorageSync('userInfo') || {};
    if (!userInfo.token) {
      // 未登录：弹出登录确认弹窗
      wx.showModal({
        title: '需登录后使用',
        content: '登录后可同步训练数据，获取个性化计划',
        confirmText: '去登录',
        cancelText: '稍后登录',
        success: (res) => {
          if (res.confirm) {
            console.log("222")
            // 跳转到登录页（根据项目实际登录页路径调整）
            wx.navigateTo({ url: '/pages/login/login' });
          } else {
            console.log("111")
            // 未登录也允许进入：直接跳转（可根据业务需求关闭此逻辑）
            wx.switchTab({
              url: '/pages/main/main',
            })
          }
        }
      });
      return;
    }

    // 2. 已登录：直接执行跳转
    this.jumpToMainPage();
  },

  /**
   * 统一跳转主页面方法（兼容tab页/普通页）
   */
  jumpToMainPage() {
    try {
      // 获取小程序配置，判断main页面是否为tabBar页面
      const accountInfo = wx.getAccountInfoSync();
      const appJson = accountInfo.miniProgram.appJson || {};
      const tabBarList = appJson.tabBar?.list || [];
      const isMainTab = tabBarList.some(item => item.pagePath === 'pages/main/main');

      if (isMainTab) {
        // 若为tab页：使用switchTab跳转（关闭非tab页，保留tab栏）
        wx.switchTab({
          url: '/pages/main/main',
          success: () => {
            console.log('跳转tab页【首页】成功');
          },
          fail: (err) => {
            console.error('跳转tab页失败：', err);
            wx.showToast({ title: '跳转失败，请重试', icon: 'none', duration: 1500 });
            // 失败降级：尝试用navigateTo跳转
            this.fallbackJump();
          }
        });
      } else {
        // 若为普通页：使用navigateTo跳转（保留返回栈）
        wx.navigateTo({
          url: '/pages/main/main',
          success: () => {
            console.log('跳转普通页【首页】成功');
          },
          fail: (err) => {
            console.error('跳转普通页失败：', err);
            wx.showToast({ title: '跳转失败，请重试', icon: 'none', duration: 1500 });
            // 失败降级：尝试用redirectTo跳转（关闭当前页）
            this.fallbackJump('redirectTo');
          }
        });
      }
    } catch (err) {
      // 异常降级：直接跳转
      console.error('跳转逻辑异常：', err);
      this.fallbackJump();
    }
  },

  /**
   * 跳转失败降级方法（保障基础功能可用）
   * @param {string} type - 跳转方式（默认navigateTo）
   */
  fallbackJump(type = 'navigateTo') {
    if (type === 'redirectTo') {
      wx.redirectTo({ url: '/pages/main/main' });
    } else {
      wx.navigateTo({ url: '/pages/main/main' });
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 页面显示时可刷新数据（如登录后返回首页，刷新用户状态）
    const userInfo = wx.getStorageSync('userInfo') || {};
    this.setData({ userInfo });
  }
});